package com.huitu.whht.base.core.api.wq.aaacp.dao;

import com.huitu.whht.base.core.api.wq.aaacp.entities.WqAaacpD;
import com.huitu.whht.api.core.common.annotations.SzyCoreApiDao;
import com.huitu.whht.base.core.api.wq.aaacp.entities.WqAaacpDKey;
import com.huitu.whht.base.core.api.wq.aaacp.entities.WqAaacpDQo;

import java.util.List;
import java.util.Map;

/**
 * 说明: 测站卤代烷醛胺类有机物项目数据表Dao,表名称: WQ_AAACP_D <br/>
 * 日期: 2019-04-11
 * @author LiuCW
 */
@SzyCoreApiDao
public interface WqAaacpDDao {

    /**
     * 根据主键查询
     * @param pk 主键
     * @return 查询结果Map
     */
    Map<String, Object> selectByPrimaryKey(WqAaacpDKey pk);

    /**
     * 根据条件查询
     * @param filter 查询条件
     * @return 查询结果List
     */
    List<Map<String, Object>> selectList(WqAaacpDQo filter);

    /**
     * 新增(null字段会被忽略)
     * @param record 要新增的数据
     * @return 新增数据的主键
     */
    Integer insertSelective(WqAaacpD record);

    /**
     * 批量新增(null字段会被忽略)
     * @param recordList 要新增的数据(类型数组)
     * @return 新增数据的主键
     */
    Integer insertBatch(List<WqAaacpD> recordList);

    /**
     * 根据主键按需修改(null字段会被忽略)
     * @param record 要修改的数据
     * @return 成功修改的条数.1:修改成功;0:要修改的数据不存在(可能已被删除)
     */
    Integer updateByPrimaryKeySelective(WqAaacpD record);

    /**
     * 根据主键修改
     * @param record 要修改的数据
     * @return 成功修改的条数.1:修改成功;0:要修改的数据不存在(可能已被删除)
     */
    Integer updateByPrimaryKey(WqAaacpD record);

    /**
     * 根据主键批量修改
     * @param record 要修改的数据
     * @return 成功修改的条数.1:修改成功;0:要修改的数据不存在(可能已被删除)
     */
    Integer updateBatch(List<WqAaacpD> record);

    /**
     * 根据主键删除
     * @param pk 主键
     * @return 成功修改的条数.1:修改成功;0:要删除的数据不存在(可能已被删除)
     */
    Integer deleteByPrimaryKey(WqAaacpDKey pk);

    /**
     * 根据主键删除(统一类型用对象，方便批量使用)
     * @param  filter 对象
     * @return 成功修改的条数.1:修改成功;0:要删除的数据不存在(可能已被删除)
     */
    Integer deleteByPK(WqAaacpD filter);

    /**
     * 根据条件删除
     * @param filter 查询条件,符合条件的数据将被删除
     * @return 成功修改的条数.通常1或者>1:删除成功;0:没有符合条件的数据
     */
    Integer deleteByFilter(WqAaacpDQo filter);
}